<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>let和const</h1>
    <ul>
        <li>ES6开始，JS有了真正常量的概念。</li>
        <li>常量：一经定义不能修改的（变）量。</li>
        <li>js中使用const来声明常量。</li>
    </ul>
    <h2>const的使用注意</h2>
    <ul>
        <li>const声明的变量必须赋予初始值。</li>
        <li>const声明的变量不能修改它的值。</li>
        <li>其余特性和let一样</li>
    </ul>
    <h2>let</h2>
    <p>let的用法与var一样，用于声明变量。</p>
    <h2>let与var的区别</h2>
    <ul>
        <li>暂时性死区：不能再变量定义之前，使用变量。</li>
        <li>块级作用域：let定义的变量，被强制锁在一个块级之中。</li>
        <li>let定义的变量不能重复定义。</li>
        <li>let定义的全局变量，与window对象脱钩。</li>
    </ul>  
    <script>

        const PI = 3.1415926;
        var a = 100;
        console.log("window.a = ",window.a); // 100

        let b = 200;
        // let定义变量与window对象脱钩
        console.log("window.b = ",window.b); // undefined
    </script>
</body>
</html>